The size of electronic systems is constantly being reduced. For electronic systems that require memory devices, one way to reduce the size of the overall system is to use multiple memory arrays, which are typically stacked vertically on top of one another to minimize package area on the circuit board. Multi chip packages of flash memory are especially beneficial for compact devices, such as cellular telephones, personal digital assistants (PDAs), computers, electronic books, handheld electronic games, and the like. However, in many multi chip packages, the cost associated with the memory arrays increases to accommodate the larger amounts of aggregated current required to program each array of the multi chip package simultaneously.
For example, in an electronic system having stacked flash memory, each flash memory typically has a controller, or a write state machine (“WSM”), that performs the flash erase and program operations. Each WSM follows a precise algorithm to program the individual flash memory. Associated with the algorithm is a current draw waveform associated with the current draw. A typical current draw waveform includes a large initial current pulse, which places a voltage on the memory cell, followed by a long pause, in which the WSM determines that the memory cell is responding to the input and a series of smaller pulses, which are used to build the voltage across the memory cell to a predetermined level for an appropriate state. To prevent a voltage overload to the system, the system must incorporate a voltage regulator that is capable of accommodating at least the maximum peak of the current draw profile and that ensures that the correct voltage on the array is maintained.
In current systems, the voltage regulator is just large enough to accommodate a little more current than what is at the maximum peak of the current waveform. Many voltage regulators in current systems are not capable of sustaining any larger amounts of current, as larger voltage regulators tend to be more expensive.
A problem arises when a stacked memory array is placed in an existing system with a voltage regulator capable of accommodating only a certain amount of voltage. Presently, the current waveform from each WSM is applied to each memory array in the stack simultaneously. Therefore, in order to program multiple memory arrays within the stack, the amplitude of the current waveform must be multiplied by the number of memory arrays within a given stack. For example, if two memory arrays are stacked and are to be programmed simultaneously, then the maximum current needed to program the two arrays must be twice the amount of current required to program one memory array. Because many systems have voltage regulators that are just large enough to accommodate a little more than the maximum peak of the current waveform for a single memory array, a new voltage regulator capable of accommodating a larger voltage must be installed in the system.
Unfortunately, increasing the amount of current required to simultaneously program multiple stacked memory arrays requires larger voltage regulators and increases system costs. One way to avoid the costs of simultaneously programming multiple stacked memory arrays is to program the arrays in sequence. For example, in a stacked memory array having two memory arrays, the first memory array would be programmed first, then the second memory array would be programmed. However, as each memory array usually takes several milliseconds to program, two memory arrays would require twice the amount of time needed to program a single memory array, which slows down the overall speed of the systems and increases the system costs.